#include "defines.txt"
#define door o10
#define door_finished_opening f200
#define ego_through_doorway f201
#define ego_exited_doorway f202
#define door_finished_closing f203

if (new_room) {
  load.pic(room_no);
  draw.pic(room_no);
  discard.pic(room_no);
  set.horizon(12);

  animate.obj(o10);
  load.view(5);
  set.view(o10,5);
  set.loop(o10,0);
  set.cel(o10,0);
  position(o10,104,76);
  ignore.blocks(o10);
  ignore.objs(o10);
  set.priority(o10,4);
  stop.cycling(o10);
  draw(o10);

  reset(door_finished_opening);
  reset(ego_through_doorway);
  reset(ego_exited_doorway);
  reset(door_finished_opening);

  if (prev_room_no == 13) {
    set.cel(o10,4);
    position(o0,120,74);
    ignore.blocks(o0);
    move.obj(o0,111,100,1,ego_exited_doorway);
  }
  if (prev_room_no == 10)
  {
    position(o0, 3, 90);
  }
  else
  {
  if (prev_room_no == 13)
  {
    position(o0, 107, 82);
  }
  else
 {
  if (prev_room_no == 14)
  {
    position(o0, 154, 91);
  }
  }
  }
  draw(o0);
  show.pic();
}

if (ego_edge_code == left_edge)
{
  //ADD ADDITIONAL LEFT EXIT CODE HERE
  new.room(10);
}
if (ego_edge_code == right_edge)
{
  //ADD ADDITIONAL LEFT EXIT CODE HERE
  new.room(14);
}

 if (said("look"))
  {
    print("There is a house on a road behind the city.");
  }

if (ego_exited_doorway) {
  reset(ego_exited_doorway);
  observe.blocks(o0);
  reverse.loop(door,door_finished_closing);
}

if (said("open","door")) {
  if (posn(o0,79,45,141,109))
 {
    stop.motion(o0);
    program.control();
    end.of.loop(o10,door_finished_opening);
  }
  else {
    print("You're not close enough.");
  }
}

if (door_finished_opening) {
  reset(door_finished_opening);  // If door_finished_opening remains set, the
                                 // following code will be executed on every
                                 // cycle (which we don't want).
  ignore.blocks(o0);        // allow ego to cross the blue control line
  move.obj(o0,110,83,1,ego_through_doorway);
}

if (ego_through_doorway) {
  observe.blocks(o0);
  new.room(13);
}

return();